package com.tansun.easycare.rule.ml.algorithm.entity;

import java.util.Map;

/**
 * 机器学习参数类
 * @author xch
 * @version 2018-08-24
 */
public class AlogrithmVariables {
	
	//神经网络参数
    private String hidden=null;	// 隐藏层的层数和每层的神经元个数 
    private String data_method=null;// 输入变量处理方式
    private String isBiases=null;// 是否有偏量
    private String acfunction=null; // 激励函数方程
    private String optmethod=null; // 优化器，即训练方程名称
    private String lossfnc=null; // 代价函数名称
    private String selectplot=null;	 //可以选择confusion_matrix、roc、networkperf者None
    private Float learnRate=null;	 //学习率
    private Integer batch_size=null; //每步的训练量
    private Integer step=null; //训练步数
    private Integer layer_num=null; //神经网络层数
    private Integer cell_num=null;//每层网络神经元个数
    private Integer seq_length=null; //序列长度
    private Integer outputNum=null; //输出层神经元个数
    private Float keep_prob=null; //保留的训练参数比例
    private String quesType=null; //模型的类型，分类或回归
    private Boolean usedOneHot=null;//是否使用独热编码
    
    //关联分析
    private Float max_length=null;//最大项集长度
    private Float min_lift=null;//提升度
    private Float min_support=null;//支持度
    private Float min_confidence=null;//置信度
    
    //kmeans
    private Integer n_clusters=null;//K值
    private String kmeans_init=null;//初始化'k-means++', 'random', an ndarray
    private String kmeans_method=null;//KMeans 小样本,MiniBatchKMeans 大样本
    private String algorithm=null;//auto，full，elkan
    private String precompute_distances=null;//是否需要提前计算距离'auto', True, False
    private Integer n_jobs=null;//指定并行使用的进程数
    private Float tol=null;//容忍度，即kmeans运行准则收敛的条件
    private Integer max_iter=null;//最大迭代次数
    private Integer n_init=null;//用不同质心初始化来运行算法的次数
    private Integer verbose=null;//冗长模式,默认0
    private Boolean copy_x=null;//对是否修改数据的一个标记，如果True，即复制了就不会修改数据。
    private Integer max_no_improvement=null;//即连续多少个Mini Batch没有改善聚类效果的话，就停止算法
    private Boolean compute_labels=null;//计算labels
    private Integer init_size=null;//用来做质心的候选样本个数，默认3个
    private Float reassignment_ratio=null;//某个质心被重新赋值的最大次数比例
    
    //决策树
    private String criterion=null;//分类标准
    private String splitter=null;
    private Integer max_depth=null;//最大深度
    private Integer min_samples_split=null;//最少分裂几个子节点
    private Integer min_samples_leaf=null;
    private Float min_weight_fraction_leaf=null;
    private String max_features=null;
    private Integer max_leaf_nodes=null;
    private Float min_impurity_decrease=null;
    private Float min_impurity_split=null;
    private Map<String,?> class_weightl=null;//类别权重，样本不均衡时很重要
    private Boolean presort=null;
    private Boolean bootstrap=null;
    private Boolean oob_score=null;
    private Boolean warm_start=null;
    private Integer n_estimators=null;
    
    //SVM
    private Float C=null;
    private String kernel=null;
    private Integer degree=null;
    private Integer cache_size=null;
    private String gamma=null;
    private Float coef0=null;
    private String decision_function_shape=null;
	private Boolean shrinking=null;
	private Boolean probability=null;
	private Boolean verbose_svm=null;
    private Float epsilon=null;
	
	//GBDT
	private Float subsample=null;
	private Float alpha=null;
	
	//PCA
	private Object n_components=null;
	private Boolean copy=null;
	private Boolean whiten=null;
	private String svd_solver=null;
	private Object iterated_power=null;
	
	//Bayes
	private String priors=null;
	private Float var_smoothing=null;
	private Boolean fit_prior=null;
	private Float binarize=null;
	private Float class_prior=null;
	
	//KNN
	private Float n_neighbors=null;
	private String weights=null;
	private Float leaf_size=null;
	private Float p=null;
	private String metric=null;
	private String metric_params=null;
	
	public AlogrithmVariables() {
	}
	
	public String getPriors() {
		return priors;
	}

	public void setPriors(String priors) {
		this.priors = priors;
	}

	public Float getVar_smoothing() {
		return var_smoothing;
	}

	public void setVar_smoothing(Float var_smoothing) {
		this.var_smoothing = var_smoothing;
	}

	public Boolean getFit_prior() {
		return fit_prior;
	}

	public void setFit_prior(Boolean fit_prior) {
		this.fit_prior = fit_prior;
	}

	public Float getBinarize() {
		return binarize;
	}

	public void setBinarize(Float binarize) {
		this.binarize = binarize;
	}

	public Float getClass_prior() {
		return class_prior;
	}

	public void setClass_prior(Float class_prior) {
		this.class_prior = class_prior;
	}

	public Float getN_neighbors() {
		return n_neighbors;
	}

	public void setN_neighbors(Float n_neighbors) {
		this.n_neighbors = n_neighbors;
	}

	public String getWeights() {
		return weights;
	}

	public void setWeights(String weights) {
		this.weights = weights;
	}

	public Float getLeaf_size() {
		return leaf_size;
	}

	public void setLeaf_size(Float leaf_size) {
		this.leaf_size = leaf_size;
	}

	public Float getP() {
		return p;
	}

	public void setP(Float p) {
		this.p = p;
	}

	public String getMetric() {
		return metric;
	}

	public void setMetric(String metric) {
		this.metric = metric;
	}

	public String getMetric_params() {
		return metric_params;
	}

	public void setMetric_params(String metric_params) {
		this.metric_params = metric_params;
	}

	public Float getEpsilon() {
		return epsilon;
	}

	public void setEpsilon(Float epsilon) {
		this.epsilon = epsilon;
	}


	public Object getN_components() {
		return n_components;
	}

	public void setN_components(Object n_components) {
		this.n_components = n_components;
	}

	public Boolean getCopy() {
		return copy;
	}

	public void setCopy(Boolean copy) {
		this.copy = copy;
	}

	public Boolean getWhiten() {
		return whiten;
	}

	public void setWhiten(Boolean whiten) {
		this.whiten = whiten;
	}

	public String getSvd_solver() {
		return svd_solver;
	}

	public void setSvd_solver(String svd_solver) {
		this.svd_solver = svd_solver;
	}

	public Object getIterated_power() {
		return iterated_power;
	}

	public void setIterated_power(Object iterated_power) {
		this.iterated_power = iterated_power;
	}

	public Float getSubsample() {
		return subsample;
	}

	public void setSubsample(Float subsample) {
		this.subsample = subsample;
	}

	public Float getAlpha() {
		return alpha;
	}

	public void setAlpha(Float alpha) {
		this.alpha = alpha;
	}

	public Boolean getVerbose_svm() {
		return verbose_svm;
	}

	public void setVerbose_svm(Boolean verbose_svm) {
		this.verbose_svm = verbose_svm;
	}

	public Float getC() {
		return C;
	}

	public void setC(Float c) {
		C = c;
	}

	public String getKernel() {
		return kernel;
	}

	public void setKernel(String kernel) {
		this.kernel = kernel;
	}

	public Integer getDegree() {
		return degree;
	}

	public void setDegree(Integer degree) {
		this.degree = degree;
	}

	public Integer getCache_size() {
		return cache_size;
	}

	public void setCache_size(Integer cache_size) {
		this.cache_size = cache_size;
	}

	public String getGamma() {
		return gamma;
	}

	public void setGamma(String gamma) {
		this.gamma = gamma;
	}

	public Float getCoef0() {
		return coef0;
	}

	public void setCoef0(Float coef0) {
		this.coef0 = coef0;
	}

	public String getDecision_function_shape() {
		return decision_function_shape;
	}

	public void setDecision_function_shape(String decision_function_shape) {
		this.decision_function_shape = decision_function_shape;
	}

	public Boolean getShrinking() {
		return shrinking;
	}

	public void setShrinking(Boolean shrinking) {
		this.shrinking = shrinking;
	}

	public Boolean getProbability() {
		return probability;
	}

	public void setProbability(Boolean probability) {
		this.probability = probability;
	}

	public Boolean getUsedOneHot() {
		return usedOneHot;
	}

	public Boolean getCopy_x() {
		return copy_x;
	}

	public Boolean getCompute_labels() {
		return compute_labels;
	}

	public Boolean getPresort() {
		return presort;
	}

	public Boolean getBootstrap() {
		return bootstrap;
	}

	public Boolean getOob_score() {
		return oob_score;
	}

	public Boolean getWarm_start() {
		return warm_start;
	}

	public String getCriterion() {
		return criterion;
	}

	public void setCriterion(String criterion) {
		this.criterion = criterion;
	}

	public String getSplitter() {
		return splitter;
	}

	public void setSplitter(String splitter) {
		this.splitter = splitter;
	}

	public Integer getMax_depth() {
		return max_depth;
	}

	public void setMax_depth(Integer max_depth) {
		this.max_depth = max_depth;
	}

	public Integer getMin_samples_split() {
		return min_samples_split;
	}

	public void setMin_samples_split(Integer min_samples_split) {
		this.min_samples_split = min_samples_split;
	}

	public Integer getMin_samples_leaf() {
		return min_samples_leaf;
	}

	public void setMin_samples_leaf(Integer min_samples_leaf) {
		this.min_samples_leaf = min_samples_leaf;
	}

	public Float getMin_weight_fraction_leaf() {
		return min_weight_fraction_leaf;
	}

	public void setMin_weight_fraction_leaf(Float min_weight_fraction_leaf) {
		this.min_weight_fraction_leaf = min_weight_fraction_leaf;
	}

	public String getMax_features() {
		return max_features;
	}

	public void setMax_features(String max_features) {
		this.max_features = max_features;
	}

	public Integer getMax_leaf_nodes() {
		return max_leaf_nodes;
	}

	public void setMax_leaf_nodes(Integer max_leaf_nodes) {
		this.max_leaf_nodes = max_leaf_nodes;
	}

	public Float getMin_impurity_decrease() {
		return min_impurity_decrease;
	}

	public void setMin_impurity_decrease(Float min_impurity_decrease) {
		this.min_impurity_decrease = min_impurity_decrease;
	}

	public Float getMin_impurity_split() {
		return min_impurity_split;
	}

	public void setMin_impurity_split(Float min_impurity_split) {
		this.min_impurity_split = min_impurity_split;
	} 

	public Map<String, ?> getClass_weightl() {
		return class_weightl;
	}

	public void setClass_weightl(Map<String, ?> class_weightl) {
		this.class_weightl = class_weightl;
	}

	public Boolean isPresort() {
		return presort;
	}

	public void setPresort(Boolean presort) {
		this.presort = presort;
	}

	public Boolean isBootstrap() {
		return bootstrap;
	}

	public void setBootstrap(Boolean bootstrap) {
		this.bootstrap = bootstrap;
	}

	public Boolean isOob_score() {
		return oob_score;
	}

	public void setOob_score(Boolean oob_score) {
		this.oob_score = oob_score;
	}

	public Boolean isWarm_start() {
		return warm_start;
	}

	public void setWarm_start(Boolean warm_start) {
		this.warm_start = warm_start;
	}

	public Integer getN_estimators() {
		return n_estimators;
	}

	public void setN_estimators(Integer n_estimators) {
		this.n_estimators = n_estimators;
	}

	public Float getMax_length() {
		return max_length;
	}

	public void setMax_length(Float max_length) {
		this.max_length = max_length;
	}

	public Float getMin_lift() {
		return min_lift;
	}

	public void setMin_lift(Float min_lift) {
		this.min_lift = min_lift;
	}

	public Float getMin_support() {
		return min_support;
	}

	public void setMin_support(Float min_support) {
		this.min_support = min_support;
	}

	public Float getMin_confidence() {
		return min_confidence;
	}

	public void setMin_confidence(Float min_confidence) {
		this.min_confidence = min_confidence;
	}

	public Integer getSeq_length() {
		return seq_length;
	}

	public void setSeq_length(Integer seq_length) {
		this.seq_length = seq_length;
	}

	public Integer getBatch_size() {
		return batch_size;
	}

	public void setBatch_size(Integer batch_size) {
		this.batch_size = batch_size;
	}

	public Integer getLayer_num() {
		return layer_num;
	}

	public void setLayer_num(Integer layer_num) {
		this.layer_num = layer_num;
	}

	public Integer getCell_num() {
		return cell_num;
	}

	public void setCell_num(Integer cell_num) {
		this.cell_num = cell_num;
	}

	public String getHidden() {
		return hidden;
	}

	public void setHidden(String hidden) {
		this.hidden = hidden;
	}

	public String getData_method() {
		return data_method;
	}

	public void setData_method(String data_method) {
		this.data_method = data_method;
	}

	public String getIsBiases() {
		return isBiases;
	}

	public void setIsBiases(String isBiases) {
		this.isBiases = isBiases;
	}

	public String getAcfunction() {
		return acfunction;
	}


	public void setAcfunction(String acfunction) {
		this.acfunction = acfunction;
	}

	public String getOptmethod() {
		return optmethod;
	}

	public void setOptmethod(String optmethod) {
		this.optmethod = optmethod;
	}

	public String getLossfnc() {
		return lossfnc;
	}

	public void setLossfnc(String lossfnc) {
		this.lossfnc = lossfnc;
	}

	public String getSelectplot() {
		return selectplot;
	}

	public void setSelectplot(String selectplot) {
		this.selectplot = selectplot;
	}

	public Float getLearnRate() {
		return learnRate;
	}

	public void setLearnRate(Float learnRate) {
		this.learnRate = learnRate;
	}

	public Integer getStep() {
		return step;
	}

	public void setStep(Integer step) {
		this.step = step;
	}

	public Float getKeep_prob() {
		return keep_prob;
	}

	public void setKeep_prob(Float keep_prob) {
		this.keep_prob = keep_prob;
	}

	public Integer getOutputNum() {
		return outputNum;
	}

	public void setOutputNum(Integer outputNum) {
		this.outputNum = outputNum;
	}

	public String getQuesType() {
		return quesType;
	}

	public void setQuesType(String quesType) {
		this.quesType = quesType;
	}

	public Boolean isUsedOneHot() {
		return usedOneHot;
	}

	public void setUsedOneHot(Boolean usedOneHot) {
		this.usedOneHot = usedOneHot;
	}

	public Integer getN_clusters() {
		return n_clusters;
	}

	public void setN_clusters(Integer n_clusters) {
		this.n_clusters = n_clusters;
	}

	public String getKmeans_init() {
		return kmeans_init;
	}

	public void setKmeans_init(String kmeans_init) {
		this.kmeans_init = kmeans_init;
	}

	public String getKmeans_method() {
		return kmeans_method;
	}

	public void setKmeans_method(String kmeans_method) {
		this.kmeans_method = kmeans_method;
	}

	public String getAlgorithm() {
		return algorithm;
	}

	public void setAlgorithm(String algorithm) {
		this.algorithm = algorithm;
	}

	public String getPrecompute_distances() {
		return precompute_distances;
	}

	public void setPrecompute_distances(String precompute_distances) {
		this.precompute_distances = precompute_distances;
	}

	public Integer getN_jobs() {
		return n_jobs;
	}

	public void setN_jobs(Integer n_jobs) {
		this.n_jobs = n_jobs;
	}

	public Float getTol() {
		return tol;
	}

	public void setTol(Float tol) {
		this.tol = tol;
	}

	public Integer getMax_iter() {
		return max_iter;
	}

	public void setMax_iter(Integer max_iter) {
		this.max_iter = max_iter;
	}

	public Integer getN_init() {
		return n_init;
	}

	public void setN_init(Integer n_init) {
		this.n_init = n_init;
	}

	public Integer getVerbose() {
		return verbose;
	}

	public void setVerbose(Integer verbose) {
		this.verbose = verbose;
	}

	public Boolean isCopy_x() {
		return copy_x;
	}

	public void setCopy_x(Boolean copy_x) {
		this.copy_x = copy_x;
	}

	public Integer getMax_no_improvement() {
		return max_no_improvement;
	}

	public void setMax_no_improvement(Integer max_no_improvement) {
		this.max_no_improvement = max_no_improvement;
	}

	public Boolean isCompute_labels() {
		return compute_labels;
	}

	public void setCompute_labels(Boolean compute_labels) {
		this.compute_labels = compute_labels;
	}

	public Integer getInit_size() {
		return init_size;
	}

	public void setInit_size(Integer init_size) {
		this.init_size = init_size;
	}

	public Float getReassignment_ratio() {
		return reassignment_ratio;
	}

	public void setReassignment_ratio(Float reassignment_ratio) {
		this.reassignment_ratio = reassignment_ratio;
	}
}
